Device and method for controlling weaving motion in real time

ABSTRACT

A device and method for controlling a real time weaving motion are provided. In order to control operation of a robot in a working space, a main moving path of the robot in the working space is determined, a unit motion constituting the determined main moving path is generated, while a continuous motion in which a unit motion is connected, weaving that dynamically changes offset is generated, and a compensation displacement or a compensation rotation amount that is determined according to the work environment is generated. A position and a rotation amount of the robot are calculated in the working space according to at least one of the unit motion, the weaving, the compensation displacement, and the compensation rotation amount.

TECHNICAL FIELD

The present invention relates to a device and method in which a robotoperating at a working space controls a real time weaving motion.

BACKGROUND ART

Nowadays, various kinds of industrial work are performed by a robot.When a position of a work target that is worked on by a robot is moved,a control system for controlling motion of the robot is required.

A control system for motion control of the robot controls the robot tomove along a programmed motion path. Further, the control systemcontrols operation of the robot according to a programmed work content.

When a real time situation is changed due to a work environment changeof the robot and a motion path change, a control system that controlsthe robot according to a programmed content cannot appropriately controlmotion and operation of the robot.

DISCLOSURE Technical Problem

The present invention has been made in an effort to provide a device andmethod having advantages of being capable of appropriately controlling amotion and operation of a robot, when a real time situation changes.

Technical Solution

An exemplary embodiment of the present invention provides a real timeweaving motion control device for controlling operation of a robot in aworking space, the real time weaving motion control device including: apreprocessor that determines a main moving path of the robot in theworking space and that generates a unit motion forming the determinedmain moving path and that generates weaving that dynamically changesoffset while performing a continuous motion in which unit motions areconnected and that generates at least one of a compensation displacementand a compensation rotation amount that are determined according to awork environment; and a working space motion synthesizing unit thatcalculates a position and a rotation amount of the robot in the workingspace according to at least one of the unit motion, the weaving, thecompensation displacement, and the compensation rotation amount.

The preprocessor may include: a continuous motion processor thatdetermines a main moving path that is determined before starting amotion of the robot or a main moving path that is generated in real timeaccording to continuous motion method selection information and thatgenerates the unit motion; a weaving motion processor that selectsweaving that is determined before starting a motion of the robot orweaving that is generated in real time according to weaving motionmethod selection information and that generates a relative weavingamount; and a compensation posture processor that generates thecompensation displacement or the compensation rotation amount forreflecting a random displacement or rotation amount according to asituation change of the working space to a motion.

The continuous motion processor may include: a path list storage unitthat stores a main moving path that is determined before starting themotion; a real time path generator that generates a new unit motion inreal time, when a reason for a situation change of the working space ora motion path change occurs; a path cue that stores a unit motion thatis generated in the real time path generator; a path selector thatselects one of a unit motion of the path cue and a unit motion of thepath list storage unit according to the continuous motion methodselection information; and a working space continuous motion generatorthat connects a unit motion that is transferred from the path selectoras a continuous motion according to continuous motion start/endinformation representing a starting point and an ending point ofpredetermined work.

The working space continuous motion generator may start an (n+1)th unitmotion of a continuous motion according to a unit motion start methodand process an n-th unit motion according to a previous motionprocessing method.

The unit motion start method may be one of: a method of starting the(n+1)th unit motion at a time point at which the n-th unit motionchanges from acceleration or a constant speed to deceleration; a methodof starting the (n+1)th unit motion at a time point at which the n-thunit motion changes from acceleration to a constant speed ordeceleration; a method of starting the (n+1)th unit motion at a timepoint of a predetermined time before the n-th unit motion stops; and amethod of starting the (n+1)th unit motion at a time point at which anoverlapping motion between the n-th unit motion and an (n−1)th previousunit motion is terminated.

The previous motion processing method may be one of: a method ofdecelerating the n-th unit motion and starting the (n+1)th unit motion;and a method of maintaining the n-th unit motion and starting the(n+1)th unit motion.

The weaving motion processor may include: a weaving list storage unitthat stores a weaving list that is determined before starting themotion; a real time weaving generator that generates weaving in realtime when a reason for a situation change of the working space or amotion path change while working occurs; a weaving cue that storesweaving that is generated in the real time weaving generator in a unitweaving unit; a weaving selector that selects unit weaving that isincluded in the weaving list or unit weaving of the weaving cueaccording to the weaving motion method selection information; and aworking space weaving motion generator that receives an input of weavingstart/end information and weaving sampling time and weaving referencevariable information for distinguishing unit weaving that is selected bythe weaving selector and that determines a relative weaving amountwithin the weaving sampling time using the selected unit weaving andweaving reference variable information, wherein the weaving referencevariable information may include a weaving reference variable forsetting a weaving change point in which next unit weaving is performedwhile performing present unit weaving.

The working space weaving motion generator may determine the weavingreference variable based on a time, a trace length, or a trace rotationamount of the continuous motion.

The working space weaving motion generator may determine the weavingreference variable, determine a first variable using a weaving cycle inwhich the weaving function repeats and the determined weaving referencevariable, and generate the weaving function as a function of the firstvariable.

The working space weaving motion generator may generate the weavingreference variable and the first variable, when the weaving referencevariable does not arrive at the weaving change point.

The working space motion synthesizing unit, the working space continuousmotion generator, the working space weaving motion generator, and thecompensation posture generator may be synchronized with the weavingsampling time to operate.

The real time weaving motion control device may further include a jointspace converter that receives an input of a position and a rotationamount of a robot from the working space motion synthesizing unit andthat generates operation of a joint of the robot so as to realize theweaving motion, wherein the joint space converter may be synchronizedwith the weaving sampling cycle to operate.

Another embodiment of the present invention provides a method ofcontrolling a real time weaving motion for controlling operation of arobot in a working space, the method including: generating a unit motionin real time according to whether a real time change reason including areason for a situation change of the working space and a motion pathchange while working occurs and selecting one of a unit motion that isdetermined before starting a motion of the robot and a unit motion thatis generated in real time; generating unit weaving in real timeaccording to whether a real time change reason occurs and selecting oneof unit weaving that is determined before starting a motion of the robotand unit weaving that is generated in real time; generating at least oneof a compensation displacement and a compensation rotation amount thatare determined according to a situation change of the working space; andcalculating a position and a rotation amount of the robot in the workingspace according to at least one of the unit motion, the unit weaving,the compensation displacement, and the compensation rotation amount.

The method may further include determining a relative weaving amountaccording to the selected unit weaving, wherein the determining of arelative weaving amount may include determining a relative weavingamount within a weaving sampling time using the selected unit weavingand weaving reference variable information, and wherein the weavingreference variable information may include a weaving reference variablefor setting a weaving change point in which next unit weaving isperformed while performing present unit weaving.

The determining of a relative weaving amount may further include:determining the weaving reference variable based on a time, a tracelength, or a trace rotation amount of the continuous motion; anddetermining a first variable using a weaving cycle that repeats theweaving function and the determined weaving reference variable andgenerating the weaving function as a function of the first variable.

Advantageous Effects

According to the present invention, a device and method that canappropriately control motion and operation of a robot when a real timesituation changes are provided.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating a motion control system for controllinga motion of a welding robot according to an exemplary embodiment of thepresent invention.

FIG. 2 is a diagram illustrating speed to time of each of an (n−1)thunit motion and an n-th unit motion.

FIG. 3A is a diagram illustrating speed to time of a scheduled n-thmotion.

FIGS. 3B and 3C each are graphs illustrating speed to time of each of ann-th unit motion and an (n+1)th unit motion when following differentprevious motion processing methods.

FIG. 4 is a graph illustrating a relationship between a unit motion anda reference variable when the reference variable follows a trace lengthreference.

FIG. 5 is a flowchart illustrating operation of a working space weavingmotion generator.

FIG. 6A is a diagram illustrating a case in which a weaving function isa sine function and in which a weaving reference variable is a variablebased on time.

FIG. 6B is a diagram illustrating a case in which a weaving function isa linear function and in which a weaving reference variable is avariable based on time.

FIG. 6C is a diagram illustrating a case in which a weaving function isa sine function and in which a weaving reference variable is a variablebased on a trace length.

FIG. 6D is a diagram illustrating a case in which a weaving function isa linear function and in which a weaving reference variable is avariable based on a trace length.

MODE FOR INVENTION

In the following detailed description, only certain exemplaryembodiments of the present invention have been shown and described,simply by way of illustration. As those skilled in the art wouldrealize, the described embodiments may be modified in various differentways, all without departing from the spirit or scope of the presentinvention. Accordingly, the drawings and description are to be regardedas illustrative in nature and not restrictive. Like reference numeralsdesignate like elements throughout the specification.

Throughout this specification and the claims that follow, when it isdescribed that an element is “coupled” to another element, the elementmay be “directly coupled” to the other element or “electrically coupled”to the other element through a third element. In addition, unlessexplicitly described to the contrary, the word “comprise” and variationssuch as “comprises” or “comprising” will be understood to imply theinclusion of stated elements but not the exclusion of any otherelements.

In the following detailed description, only certain exemplaryembodiments of the present invention have been shown and described,simply by way of illustration.

FIG. 1 is a diagram illustrating an example in which a device and methodfor controlling a weaving motion are applied to control a motion of awelding robot according to an exemplary embodiment of the presentinvention. An exemplary embodiment of the present invention illustratesa welding robot that performs welding among industrial robots. However,the present invention is not limited thereto, and the spirit of theinvention that is described in an exemplary embodiment may be used formotion control of another robot.

As shown in FIG. 1, a motion control system 1 includes a preprocessor10, a working space motion synthesizing unit 20, a joint space converter30, and a servo controller 40. FIG. 1 also illustrates a robot mechanism2, which is a control target of the motion control system 1.

The preprocessor 10 determines a main moving path on a working space ofa robot, generates a unit motion according to the determined main movingpath, generates weaving that dynamically changes offset while incontinuous motion, and generates a compensation displacement or acompensation rotation amount that is determined according to a workenvironment. Hereinafter, a weaving motion includes a motion in which aunit motion and weaving are combined. A continuous motion indicates acombination of unit motions. A compensation displacement or acompensation rotation amount is reflected to a weaving motion.

The preprocessor 10 includes a continuous motion processor 100, aweaving motion processor 200, and a compensation posture processor 300.

The continuous motion processor 100 determines a main moving path on aworking space of a robot, and generates a unit motion in the determinedmain moving path. In this case, the main moving path may be determinedbefore starting a motion or is generated in real time while operating,and in order to select one of a main moving path that is determinedbefore starting a motion and a main moving path that is generated inreal time, continuous motion method selection information A1 isgenerated.

The continuous motion processor 100 includes a path list storage unit110, a real time path generator 120, a path cue 130, a path selector140, and a working space continuous motion generator 150.

The continuous motion method selection information A1 is generatedaccording to an external situation change that may occur whileperforming a motion of the robot and a motion path change while working.That is, when an external situation change and a motion path changeoccur, continuous motion method selection information A1 that selects amain moving path that is generated in real time instead of a main movingpath that is determined before starting a motion is generated.Otherwise, continuous motion method selection information A1 thatselects a main moving path that is determined before starting a motionis generated.

An example of an external situation change that may occur in robot workis described as follows.

1) Deformation of a member by welding

2) Change of a paint target by a paint jet force

3) Change of a target by a suction force of a collecting blast

Examples of reasons for a motion path change while working are describedas follows.

1) When an outside target not previously existing in a prearranged planenters a work area

2) When another robot processes previously scheduled work among multiplerobot work

The content is an example, and various requests may occur according touse of the robot. Whenever such various requests occur, it is necessaryto generate a main moving path in real time.

The continuous motion processor 100 produces a motion in a main movingpath that is determined in a working space. The main moving path is aset of unit motions. The unit motion is defined by a profile includingan order, a target pose, a robot configuration, acceleration or anacceleration time, deceleration or a deceleration time, a maximum speedor a constant speed time, angular acceleration or an angularacceleration time, angular deceleration or an angular deceleration time,a maximum angular speed or a constant speed time, a unit motion startmethod, and a previous motion processing method.

The pose indicates information about a position and a rotation of arobot. An order of a unit motion is determined according to an orderbetween unit motions constituting a path. Each of unit motions includesorder information thereof. A target pose is information including atarget position and a target direction.

The robot configuration indicates a posture of a robot. The robot is setin an appropriate posture according to work, and may have differentpostures at the same pose. For example, a welding robot takes a posturein a form similar to an arm of a human, and when the welding robot takesthe same pose, the welding robot may take a posture of a left arm or aright arm. That is, even if the welding robot performs the same rotationat the same position in a working space, work content is changedaccording to whether the welding robot takes a left-handed posture or aright-handed posture.

The robot configurations are different according to the number and thekind of axes of the robot, and the robot configuration may be determinedon a robot basis.

A moving path of the robot may be classified into an accelerationsegment in which a moving speed increases, a constant speed segment thatis maintained at a maximum speed, and a deceleration segment in which amoving speed decreases according to a moving speed. Further, a rotationpath of the robot may be classified into an angular acceleration segmentin which an angular speed increases, an angular constant speed segmentthat is maintained in a maximum angular speed, and an angulardeceleration segment in which an angular speed decreases according to anangular speed.

Acceleration or an acceleration time is information corresponding to anacceleration segment, deceleration or a deceleration time is informationcorresponding to a deceleration segment, a maximum speed or a constantspeed time is information corresponding to a constant speed segment,angular acceleration or an angular acceleration time is informationcorresponding to an angular acceleration segment, angular decelerationor an angular deceleration time is information corresponding to anangular deceleration segment, and a maximum angular speed or a constantspeed time is information corresponding to an angular constant speedsegment.

A moving path that is determined before starting a motion is stored atthe path list storage unit 110. A moving path is a set of unit motions,and thus a set of unit motions representing a determined moving path arestored at the path list storage unit 110.

When a reason for an external situation change or a motion path changewhile working occurs, the real time path generator 120 generates a newmoving path in real time. That is, the real time path generator 120generates a unit motion in real time.

The real time path generator 120 may use various methods so as togenerate a new moving path in real time. For example, according to amethod of selecting (generating a unit motion) a pose through a videocamera, a target pose of a path may be changed by the video camera basedon a processed video result. In order to interlock weaving with a paththat is generated in this way, a weaving motion processor controls aweaving motion.

Because a path generation time including times that are consumed for avideo processing is indefinite, a motion of the robot may be stopped. Inorder to prevent this, a buffer means is necessary, and in an exemplaryembodiment of the present invention, a “path cue” is used as a buffermeans. Specifically, as unit motion generation of the real time pathgenerator 120 is delayed, in order to prevent a motion from beingstopped, a unit motion may be stored at the path cue 130.

The path cue 130 includes a storage space for storing a unit motion, andthe storage space may be embodied with a memory that is divided in aunit motion unit. A size of the path cue 130 may be appropriately setaccording to a time that is consumed for generating a unit motion of thereal time path generator 120.

Specifically, when continuous motion start/end information B1 notifiesstart of a unit motion, the path cue 130 transfers a corresponding unitmotion to the path selector 140. When the continuous motion start/endinformation B1 notifies the end of a unit motion, the path cue 130deletes a corresponding unit motion from the memory.

The path selector 140 selects one of a unit motion of the path liststorage unit 110 and a unit motion that is transferred from the path cue130 according to the continuous motion method selection information A1.

The working space continuous motion generator 150 receives an input ofthe continuous motion start/end information B1 and a unit path that istransferred from the path selector 140, and determines a target pose bygenerating a trajectory for a real time response of a motion control ofa robot that performs work on a work path between a predetermined workstarting point and an ending point. The target pose may be representedwith a matrix of a position vector T_p(t) representing a target positionand a rotation vector T_r(t) representing a target rotation amount.

The continuous motion start/end information B1 includes informationabout a predetermined work starting point and ending point. That is, thecontinuous motion start/end information B1 is information fordistinguishing one unit motion of a plurality of unit motions. Themotion control system 1 controls various unit motions. For example, thecontinuous motion start/end information B1 is information representingthe start and the end of a unit motion that is controlled by a presentmotion control system 1 among several unit motions according to POSE toPOSE (P2P: a method of moving a robot from a start pose to an end poseand moving the robot by determining an optimized form on each jointbasis of the robot at an intermediate path) or a JOG method (a method ofmoving a robot with instructions of a speed on an axis basis or aposture speed). The working space continuous motion generator 150distinguishes a continuous motion of a unit motion different from apresently generated continuous motion according to the continuous motionstart/end information B1.

The working space continuous motion generator 150 starts each unitmotion of a continuous motion according to a unit motion start method. Aunit motion start method is a method of determining a start time pointof a unit motion of a posterior order of a continuous unit motion.

Referring to FIG. 2, a method of starting a unit motion will bedescribed.

FIG. 2 is a diagram illustrating a speed to a time of each of an (n−1)thunit motion and an n-th unit motion. Referring to FIG. 2, a method ofstarting an (n+1)th unit motion will be described.

A method of starting an (n+1)th unit motion may occur in one of thefollowing 4 cases.

1) A time point t1 of converting from acceleration of a previous unitmotion (an n-th unit motion) to a constant speed or deceleration

2) A time point t2 in which an overlapping motion between a previousunit motion (an n-th unit motion) and a unit motion ((n−1)th unitmotion) before the previous unit motion is terminated

3) A time point t3 of a predetermined time t_b before a previous unitmotion (an n-th unit motion) stops

4) A time point t4 of converting from acceleration or a constant speedof a previous unit motion (an n-th unit motion) to deceleration

At any one time point of the time point t1 to the time point t4, a nextunit motion ((n+1)th unit motion) may be started. Further, at a randomtime point between a period t2-t4, a period t4-t3, and a period t3-t1,an (n+1)th unit motion may be started.

The working space continuous motion generator 150 processes a previousunit motion of a continuous motion according to a previous motionprocessing method. The previous motion processing method is a method ofprocessing a previous unit motion of a newly started unit motion.

Hereinafter, a previous motion processing method will be described withreference to FIGS. 3A-3C.

FIG. 3A is a diagram illustrating speed to time of a scheduled n-thmotion.

FIGS. 3B and 3C each are diagrams illustrating speed to time of each ofan n-th unit motion and an (n+1)th unit motion according to a differentprevious motion processing method.

As shown in FIGS. 3B and 3C, a previous motion processing method isdescribed as follows.

1) A method of decelerating a previous motion (n-th unit motion) andstarting a next motion ((n+1)th unit motion)

2) A method of maintaining a previous motion (n-th unit motion) andstarting a next motion ((n+1)th unit motion)

It is assumed that in a previous motion processing method that is shownin FIGS. 3B and 3C, a next unit motion follows “1) a time point t4 ofconverting from acceleration or a constant speed of a previous unitmotion (an n-th unit motion) to deceleration”. The present invention isnot limited thereto, and in an exemplary embodiment, the above methodsare described as settings that describe a previous motion processingmethod.

According to a previous motion processing method 1), a scheduled n-thunit motion is not yet terminated at a time point t4 at which a nextunit motion ((n+1)th unit motion) starts, as indicated by a dotted line,but is decelerated from the time point t4 and is terminated.

Alternatively, a scheduled n-th unit motion is maintained, and at a timepoint t4, a next (n+1)th unit motion is started and thus two motions areoverlapped according to a previous motion processing method 2.

Among the foregoing next unit motion processing methods, even at a timepoint other than the time point t4, a previous motion processing methodis applied with the same principle.

When an initial speed of the robot is “0” at a start time point of aunit motion, the working space continuous motion generator 150 divides asegment into three segments of acceleration, constant speed, anddeceleration according to a moving speed of the robot.

The working space continuous motion generator 150 generates a speedprofile of each of preset three segments. Specifically, the workingspace continuous motion generator 150 generates a speed profile of anacceleration segment and a deceleration segment into a predeterminedpolynomial order and generates a speed profile in a constant speedsegment into a speed profile having a constant value.

When an initial speed of the robot is not “0” at a start time point of aunit motion, the working space continuous motion generator 150 dividesand sets a segment into three segments of blending, constant speed, anddeceleration. Because an initial speed of a blending segment is not 0,the blending segment is a segment in which a previous unit motion and apresent unit motion are combined.

The working space continuous motion generator 150 adds positioninformation included in poses of each of a previous unit motion and apresent unit motion, multiplies rotation information matrixes that areincluded in each pose, and combines the previous unit motion and thepresent unit motion. Therefore, a final position that should move for ablending period is determined.

The working space continuous motion generator 150 blends a speed profilethat makes a speed to “0” in an initial speed at a blending segment andan acceleration segment speed profile for moving to a final position. Byadding a difference between a distance that should be moved at ablending segment and a moved distance for a period that makes a speed to0 at an initial speed to a speed profile for moving for a given blendingsegment, a blending segment speed profile is generated.

At a deceleration segment in which an initial speed is not 0, theworking space continuous motion generator 150 may generate a speedprofile with a predetermined polynomial order. In this case, when theabove-described initial speed is 0, a polynomial order is higher than aspeed profile order at a deceleration segment. At a constant speedsegment in which an initial speed is not 0, the working space continuousmotion generator 150 generates a speed profile of a constant speed.

The working space continuous motion generator 150 generates a targetpose including a matrix of a position vector T_p(t) representing atarget position by generating a trajectory according to a speed profilethat is generated in this way and a rotation vector T_r(t) representinga target rotation amount. The working space continuous motion generator150 transfers a generated target pose to the working space motionsynthesizing unit 20.

The weaving motion processor 200 generates a motion, i.e., weaving, thatdynamically changes offset among continuous motions. The weaving motionprocessor 200 uses a previously scheduled weaving list or a real timeweaving generator with a method of dynamically changing offset.

The weaving motion processor 200 generates a weaving motion according toa weaving list that is determined on a working space. As described in adescription of the real time path generator, when a reason for anexternal situation change or a motion path change occurs, the weavingmotion processor 200 cannot use a previously scheduled weaving list. Inthis case, the weaving motion processor 200 generates a relative weavingamount according to a weaving list that is generated in the real timeweaving generator.

That is, in order to generate a relative weaving amount according to asituation, the weaving motion processor 200 may generate a real timeweaving list or selectively use a stored weaving list.

The weaving motion processor 200 includes a weaving list storage unit210, a real time weaving generator 220, a weaving cue 230, a weavingselector 240, and a working space weaving motion generator 250.

The weaving list storage unit 210 stores a list of weaving that isdetermined before starting a motion.

Weaving motion method selection information A2 is generated according towhether a reason for an external situation change that may occur while amotion of the robot and a motion path change while working occurs. Thatis, when one of reasons for an external situation change and a motionpath change occurs, weaving motion method selection information A2 thatselects weaving that is generated in real time occurs instead of mainweaving that is determined before starting a motion. Otherwise,continuous motion method selection information A2 that selects weavingthat is determined before starting a motion occurs.

The real time weaving generator 220 generates new weaving in real timewhen a reason for an external situation change or a motion path changewhile working occurs. That is, the real time weaving generator 220generates unit weaving in real time. In order to generate new weaving inreal time, the real time weaving generator 220 may use various methods.

The weaving cue 230 includes a storage space for storing unit weaving,and the storage space may be embodied with a memory that is divided in aunit weaving unit. A size of the weaving cue 230 may be appropriatelyset according to a time that is consumed for generating unit weaving ofthe real time weaving generator 220. The weaving cue 230 transfers anddeletes stored unit weaving according to weaving start/end informationB2.

Specifically, when the weaving start/end information B2 notifies thestart of unit weaving, the weaving cue 230 transfers the correspondingunit weaving to the weaving selector 240. When the weaving start/endinformation B2 notifies the end of unit weaving, the weaving cue 230deletes corresponding unit weaving from a memory.

The weaving selector 240 selects one of unit weaving that is transferredfrom the weaving list storage unit 210 and unit weaving that istransferred from the weaving cue 230 according to weaving motion methodselection information A2.

The working space weaving motion generator 250 receives an input ofweaving motion start/end information B2 and unit weaving that istransferred from the weaving selector 240, and determines a relativeweaving amount of continuous motion according to unit weaving. Therelative weaving amount may be represented with a matrix of a positionvector W_p(t) and a rotation vector W_r(t).

The weaving start/end information B2 is transferred to the working spaceweaving motion generator 250 and the weaving cue 230. When the weavingstart/end information B2 notifies the weaving end, the weaving cue 230is emptied. The weaving start/end information B2 is information fordistinguishing one of a plurality of weaving motions together with thecontinuous motion start/end information B1. The working space weavingmotion generator 250 distinguishes weaving of a continuous motiondifferent from weaving of a continuous motion that is presentlygenerated according to the weaving motion start/end information B2.

As described above, each of the path cue 130 and the weaving cue 230empty a cue according to the continuous motion start/end information B1and the weaving start/end information B2. That is, in order to prevent aweaving motion to be started next and a presently generated weavingmotion from being mixed, data of the present weaving motion is deleted.This prevents an erroneous operation that may occur when generating aweaving motion.

The foregoing weaving list is a set of unit weaving. Unit weaving isdefined by direction selection, a reference vector, a weaving changepoint, a maximum weaving pose, a weaving cycle, and a weaving function.

Direction selection of unit weaving is determined by a moving directionvector and a reference vector. A vector representing a direction of unitweaving is referred to as a weaving direction vector Wd. Wd is formedwith Wd_x, Wd_y, and Wd_z according to an xyz coordinate axis.

The weaving motion processor 200 sets a weaving direction vector Wd fordetermining a relative weaving amount. Various methods of setting aweaving direction vector W may exist.

For example, the weaving motion processor 200 may follow one of 1) amethod of determining a weaving direction vector W in a directionorthogonal to a moving direction vector D and a reference vector N, and2) a method of determining a weaving direction vector W with a randomvector based on a working space.

In the method 1), the moving direction vector D is a vector representinga path that is selected from the continuous motion processor 100, and areference vector N is a vector that is perpendicular to the movingdirection vector D on the same plane. In this case, the moving directionvector D is represented with (D_x, D_y, D_z), and the reference vector Nis represented with (N_x, N_y, N_z).

In the method 2), the moving direction vector D may be determined with(1, 0, 0), the reference vector N may be determined with (0, 1, 0), andthe weaving direction vector W may be determined with (0, 0, 1).

The weaving change point represents a point at which next unit weavingof presently performing unit weaving is performed. When unit weavingoccurs in real time, if a size of a weaving cue is 0, weaving may bechanged at a random desired point and thus a weaving change point withinunit weaving is ignored.

However, when unit weaving occurs in real time, if a size of a weavingcue is not 0, because weaving cannot be changed at a desired point, apoint at which next unit weaving of presently performing unit weaving isperformed according to a size of a weaving cue should be set. That is,when a weaving cue exists (when a cue size is not 0), the weaving cueshould have time information about a time point (weaving change point)at which next unit weaving should be reflected. If this information doesnot exist, weaving information that is stored at a weaving cue issimultaneously performed.

The weaving change point should be set to synchronize with a unit motionof a continuous motion. Alternatively, a predetermined point “s_d” of aweaving reference variable “S” for setting a weaving change point may beset as a weaving change point.

When a predetermined point s_d of s is set to a weaving change point, astarting point in which next unit weaving starts is a point firstsatisfying s>s_d.

A weaving reference variable may be set based on a time, a trace length,or a trace rotation amount. When the weaving reference variable is avariable based on a time, the weaving reference variable becomes s(t).

When the weaving reference variable is a variable based on a tracelength, if a motion is a set of straight line unit motions, a movinglength d is set to a weaving reference variable. Therefore, the weavingreference variable becomes s(d).

When a continuous motion is a constant speed, a result on work spaceaccording to a weaving reference variable based on a time and a resulton work space according to a weaving reference variable based on a tracelength are the same. When a continuous motion is not a constant speed, aresult on work space according to a weaving reference variable based ona trace length and a result on work space according to a weavingreference variable based on a time are different.

FIG. 4 is a graph illustrating a relationship between a unit motion anda weaving reference variable when a weaving reference variable is avariable based on a trace length.

As continued unit motions d(1), d(2), and d(3) that are shown in FIG. 4are added, a weaving reference variable “s(d)” is generated.

When a weaving reference variable is a variable based on a tracerotation amount, if a motion is a set of rotation unit motions, a movedrotation amount r is set to a weaving reference variable. This is thesame as a weaving reference variable generation method based on a tracelength that is shown in FIG. 4. That is, rotation unit motions are addedand thus a weaving reference variable “s(r)” is generated.

A maximum weaving pose P_max determines a relative pose according to aweaving direction vector. A relative pose is a weaving direction vector,and represents whether weaving is performed with which size and whichdirection. That is, a direction and a size of weaving are determinedaccording to a maximum weaving pose P_max and a weaving direction vectorW. The maximum weaving pose P_max is defined by P_x, P_y, P_z, P_roll,P_pitch, and P_yaw. For example, the maximum weaving pose P_max iscalculated in a form of a product of a homogeneous transform matrix. Thehomogeneous transform matrix includes entire information about aposition and a rotation. In this case, P_x, P_y, and P_z represent aposition in xyz coordinates, and P_roll, P_pitch, and P_yaw areinformation representing a rotation level of an xyz coordinates.

The weaving function f(k) is a function for determining whether togenerate a maximum weaving pose P_max with which motion. That is, themaximum weaving pose P_max is a function for determining an occurringmotion shape. The weaving function f(k) may be selected as a periodicfunction in which a cycle and a maximum value are 1 [max f(k)=1].

Because a size of weaving is reflected to the maximum weaving poseP_max, a maximum size of the weaving function f(k) is set to 1, and theweaving function f(k) is set so that a cycle of the weaving functionf(k) becomes 1.

For example, the weaving function f(k) may be set to a trigonometricfunction such as sin(k/2pi) or cos(k/pi), or may be set to a squarepulse or a triangular pulse in which a maximum size is 1 and a cycleis 1. In this case, when the weaving function f(k) is a trigonometricfunction, the weaving function f(k) is a continuous weaving function,and when the weaving function f(k) is a square pulse or a triangularpulse, the weaving function is a non-continuous weaving function.

In the continuous weaving function f(k), a differential value d(f(k))/dtto a time is not 0, and a starting point and an ending point thereof arethe same [f(0)=f(1)].

A weaving cycle sp represents a time in which a weaving function isrepeated, and a relationship of Equation 1 is formed between the weavingreference variable s(t) and the variable k.

mod(s(t),sp)=k(t)  (Equation 1)

Here, a mod calculation represents a remainder that divides a sequentialweaving reference variable s(t) by a weaving cycle sp. That is, aremainder that divides a sequential weaving reference variable s(t) by aweaving cycle sp is a variable k.

The weaving motion processor 200 operates a weaving sampling time ts asa cycle. Therefore, the weaving motion processor 200 should calculate aweaving amount within the weaving sampling time ts. The weavingreference variable information SI notifying a method of setting theweaving sampling time ts and the weaving reference variable s istransferred to the working space weaving motion generator 250.

The working space weaving motion generator 250 determines a weavingreference variable s according to the weaving reference variableinformation SI, and when the weaving reference variable s is determined,the working space weaving motion generator 250 determines a variable k,while the working space weaving motion generator 250 generates arelative weaving amount according to the unit weaving and the weavingreference variable s. In this case, the working space weaving motiongenerator 250 operates in a constant order every weaving sampling timets, thereby determining a relative weaving amount. When the weavingreference variable s is a variable based on time, a relative weavingamount is a vector W_p(t) and a matrix W_r(t).

The weaving reference variable information SI includes information aboutwhether the weaving reference variable s is a variable based on time, avariable based on a trace length, or a variable based on a tracerotation amount. Therefore, the weaving motion generator 250 determinesa weaving reference variable s and a variable k according to the weavingreference variable information SI. When the weaving reference variableinformation SI is a variable based on time, a reference k(t) isdetermined according to Equation 1. At the weaving motion generator 250,a method of setting a variable k according to a weaving referencevariable s is previously set.

When the weaving reference variable information SI instructs the weavingreference variable s as a variable based on a trace length or a tracerotation amount, the working space weaving motion generator 250generates a trace length or a trace rotation amount every weavingsampling time ts. The working space weaving motion generator 250receives a unit motion from the working space continuous motiongenerator 150 and adds unit motions, thereby generating a trace lengthor a trace rotation amount.

For example, the working space weaving motion generator 250 receives andadds unit weaving (d(1), d(2), . . . ) from the working space continuousmotion generator 150 using a method of adding a trace length that isdescribed with reference to FIG. 4, thereby generating a weavingreference variable s(d).

Further, the working space weaving motion generator 250 adds a rotationamount (r(1), r(2), . . . ) of unit weaving from the working spacecontinuous motion generator 150, thereby generating a weaving referencevariable s(r).

FIG. 5 is a flowchart illustrating operation of a working space weavingmotion generator when a weaving reference variable is a variable basedon time. Operation that is described hereinafter may be equally appliedeven when a weaving reference variable is a variable based on a tracelength and a trace rotation amount. A variable is only changed from timeto a trace length and a trace rotation amount.

As shown in FIG. 5, the working space weaving motion generator 250generates a weaving reference variable s(t) and a variable k(t) (S100).It is described that the weaving reference variable s(t) is a variablebased on time. However, the present invention is not limited thereto.

The working space weaving motion generator 250 determines whether theweaving reference variable s(t) is the same as a weaving change point sd(S110).

If the weaving reference variable s(t) is the same as a weaving changepoint sd, the working space weaving motion generator 250 selects nextunit weaving and initializes the weaving reference variable s(t) (S120)[s(t)=0].

If the weaving reference variable s(t) is not the same as a weavingchange point sd, the working space weaving motion generator 250 repeatsstep S100 of generating the weaving reference variable s(t) and thevariable k(t).

The working space weaving motion generator 250 calculates a weavingamount of present unit weaving (S130). The weaving amount P_r(t) isrepresented with the product of a maximum weaving pose P_max and aweaving function f(k), as represented by Equation 2. The product of twofactors represents a position and a rotation of the robot, and theposition of the robot may be represented with coordinates in a xyzcoordinate system, and the rotation of the robot may be represented witha rotation of an xyz coordinate system.

The product of the maximum weaving pose P_max and the weaving functionf(k) is used to substitute a component of the weaving function f(k)corresponding to a component of the maximum weaving pose P_max.

P _(—) r(t)=P_max*f(k(t))=(P _(—) r _(—) x(t),P _(—) r _(—) y(t),P _(—)r _(—) z(t),P _(—) r_roll(t),P _(—) r_pitch(t),P _(—)r_yaw(t))  (Equation 2)

In this case, a weaving amount representing a position is referred to asa position weaving amount P_r_p(t), and a weaving amount representing arotation is referred to as a rotation weaving amount P_r_r(t).

In weaving amounts that are generated in Equation 2, a position weavingamount P_r_p(t) is P_r_x(t), P_r_y(t), and P_r_z(t), and a rotationweaving amount P_r_r(t) is P_r_roll(t), P_r_pitch(t), and P_r_yaw(t).

The working space weaving motion generator 250 calculates a weavingdirection (S140). The weaving direction is represented with a weavingvector Rw(t). As described above, the working space weaving motiongenerator 250 calculates an outer product of a moving direction vector Dand a reference vector N and calculates a weaving direction vectorRw(t).

The working space weaving motion generator 250 calculates a relativeweaving amount with the product of a weaving direction and a weavingamount (S150). The relative weaving amount is represented with relativeweaving amount vectors W_p(t) and W_r(t). A position relative weavingamount vector W_p(t) of relative weaving amount vectors is a product ofthe position weaving amount and a weaving direction vector Rw(t)P_r_p(t), as represented with Equation 3. A rotation relative weavingamount vector W_r(t) of relative weaving amount vectors is a product ofa rotation weaving amount P_r_r(t) and the weaving direction vectorRw(t), as represented with Equation 4.

W _(—) p(t)=Rw(t)*P _(—) r _(—) p(t)  (Equation 3)

W _(—) r(t)=Rw(t)*P _(—) r _(—) r(t)  (Equation 4)

In this way, the working space weaving motion generator 250 calculates arelative weaving amount. The working space weaving motion generator 250distinguishes weaving of a weaving motion different from weaving of apresently generating weaving motion according to the weaving start/endinformation B2.

The compensation posture processor 300 reflects a random displacement orrotation amount according to an external situation change to a motion. Adisplacement or a rotation amount according to an external situationchange may be calculated with various methods. In an exemplaryembodiment of the present invention, the compensation posture processor300 calculates a random displacement or rotation amount according to anexternal situation change according to a predetermined method.

The compensation posture processor 300 includes a compensation posturegenerator 310 that receives an input of an external situation. Thecompensation posture generator 310 detects an external situation, andwhen the external situation is changed, the compensation posturegenerator 310 calculates a displacement or a rotation amount forcompensating the change of the external situation according to apredetermined method.

The compensation posture processor 300 generates a compensationdisplacement M_p(t) and a compensation rotation amount M_r(t) that aredetermined according to a random compensation posture value according toan external situation.

The working space motion synthesizing unit 20 receives an output of eachof the working space continuous motion generator 150, the working spaceweaving motion generator 250, and the compensation posture generator310, and calculates a position and a rotation amount of the robot onworking space.

The working space motion synthesizing unit 20, the working spacecontinuous motion generator 150, the working space weaving motiongenerator 250, the compensation posture generator 310, and the jointspace converter 30 are synchronized with the same working space samplingcycle. The working space sampling cycle is synchronized with a weavingsampling cycle ts.

The working space motion synthesizing unit 20 calculates a positionTS_p(t) on working space and a rotation amount TS_r(t) on working spacebased on an input, as represented with Equations 5 and 6.

TS _(—) p(t)=T _(—) p(t)+W _(—) p(t)+M _(—) p(t)  (Equation 5)

TS _(—) r(t)=T _(—) r(t)*W _(—) r(t)*M _(—) r(t)  (Equation 6)

As represented with Equations 5 and 6, the working space motionsynthesizer 20 can generate weaving and reflect a compensation posturevalue in real time in every working space sampling cycle.

The joint space converter 30 receives an input of a position and arotation amount on working space from the working space motionsynthesizing unit 20, and generates an operation that should beperformed at a joint of the robot so as to realize a weaving motion thatis generated at the working space. That is, the joint space converter 30converts a weaving motion of working space to a motion of joint space.As a specific method, inverse kinematics may be applied to the jointspace converter 30.

The servo controller 40 is a constituent element that performs thecontrol of a joint unit of a robot such as impedance control, positioncontrol, speed control, and torque control.

FIGS. 6A-6D each illustrate a weaving motion in which a motion controlsystem is applied and generated according to an exemplary embodiment ofthe present invention.

FIG. 6A is a diagram illustrating a case in which a weaving function isa sine function and in which a weaving reference variable is a variablebased on time.

In FIG. 6A, a continuous motion path advancing from a starting point ST1to an ending point EN1 is indicated by a one-dot-chain line. Further, aweaving motion at the working space in which weaving is added to acontinuous motion is indicated by a solid line. A weaving function f(k)of FIG. 6A is sin(k/2pi).

In FIG. 6A, a speed V1 at a segment PE1 between the starting point ST1and a via point TH1 is faster than a speed V2 at a segment PE2 betweenthe via point TH1 and the ending point EN1.

Because the weaving function f(k) follows a weaving reference variables(t) based on time, a weaving cycle that is included in the segment PE2is larger than that of the segment PE1, as shown in FIG. 6A. Because thespeed V1 is faster than the speed V2, a time that is consumed for movingthe same distance is shorter. Because the weaving reference variables(t) is a variable based on time, as the time is shorter, a weavingcycle that is included within a corresponding time reduces.

FIG. 6B is a diagram illustrating a case in which the weaving functionis a linear function and in which a weaving reference variable is avariable based on time. Similar to a case of FIG. 6A, in FIG. 6B, acontinuous motion path is indicated by a one-point chain line, and atthe working space, a weaving motion is indicated by a solid line. Aweaving function f(k) of FIG. 6A is k.

In FIG. 6B, a speed V3 at a segment PE2 between a starting point ST2 anda via point TH2 is faster than a speed V4 at the segment PE2 between thevia point TH2 and an ending point EN2. Therefore, a weaving cycle thatis included in a segment PE4 is larger than that of a segment PE3.

FIG. 6C is a diagram illustrating a case in which a weaving function isa sine function and in which a weaving reference variable is a variablebased on a trace length. Similar to a case of FIG. 6A, in FIG. 6C, acontinuous motion path is indicated by a one-point chain line, and atthe working space, a weaving motion is indicated by a solid line. Aweaving function f(k) of FIG. 6C is sin(k/2pi).

As shown in FIG. 6C, when the weaving reference variable(s) is avariable based on a trace length, the number of weaving cycles that areincluded in a segment PE5 and a segment PE6 is determined according to acontinuous motion moving path length regardless of a speed V5 and aspeed V6.

Therefore, when lengths of the segment PE5 and the segment PE6 are thesame, the number of weaving cycles that are included in each segment isthe same. However, a time in which the work robot passes through thework segment PE5 and a time in which the work robot passes through thework segment PE6 are different according to a speed.

FIG. 6D is a diagram illustrating a case in which a weaving function isa linear function and in which a weaving reference variable is avariable based on a trace length. Similar to a case of FIG. 6A, in FIG.6D, a continuous motion path is indicated by a one-point chain line, andat the working space, a weaving motion is indicated by a solid line. Aweaving function f(k) of FIG. 6D is k.

As shown in FIG. 6D, when the weaving reference variable(s) is avariable based on a trace length, the number of weaving cycles that areincluded in each of a work segment PE7 and a work segment PE8 isdetermined according to a length of a continuous motion moving pathregardless of a speed V7 and a speed V8.

While this invention has been described in connection with what ispresently considered to be practical exemplary embodiments, it is to beunderstood that the invention is not limited to the disclosedembodiments, but, on the contrary, is intended to cover variousmodifications and equivalent arrangements included within the spirit andscope of the appended claims.

INDUSTRIAL APPLICABILITY

In this way, according to an exemplary embodiment of the presentinvention that can control a weaving motion in real time, a real timeweaving motion control device can cope with a change of an external workenvironment in real time.

1. A real time weaving motion control device for controlling operationof a robot in a working space, the real time weaving motion controldevice comprising: a preprocessor that determines a main moving path ofthe robot in the working space and that generates a unit motion formingthe determined main moving path and that generates weaving thatdynamically changes offset while performing a continuous motion in whichunit motions are connected and that generates at least one of acompensation displacement and a compensation rotation amount that aredetermined according to a work environment; and a working space motionsynthesizing unit that calculates a position and a rotation amount ofthe robot in the working space according to at least one of the unitmotion, the weaving, the compensation displacement, and the compensationrotation amount.
 2. The real time weaving motion control device of claim1, wherein the preprocessor comprises: a continuous motion processorthat determines a main moving path that is determined before starting amotion of the robot or a main moving path that is generated in real timeaccording to continuous motion method selection information and thatgenerates the unit motion; a weaving motion processor that selectsweaving that is determined before starting a motion of the robot orweaving that is generated in real time according to weaving motionmethod selection information and that generates a relative weavingamount; and a compensation posture processor that generates thecompensation displacement or the compensation rotation amount forreflecting a random displacement or rotation amount according to asituation change of the working space to a motion.
 3. The real timeweaving motion control device of claim 2, wherein the continuous motionprocessor comprises: a path list storage unit that stores a main movingpath that is determined before starting the motion; a real time pathgenerator that generates a new unit motion in real time when a reasonfor a situation change of the working space or a motion path changeoccurs; a path cue that stores a unit motion that is generated in thereal time path generator; a path selector that selects one of a unitmotion of the path cue and a unit motion of the path list storage unitaccording to the continuous motion method selection information; and aworking space continuous motion generator that connects a unit motionthat is transferred from the path selector as a continuous motionaccording to continuous motion start/end information representing astarting point and an ending point of predetermined work.
 4. The realtime weaving motion control device of claim 3, wherein the working spacecontinuous motion generator starts an (n+1)th unit motion of acontinuous motion according to a unit motion start method and processesan n-th unit motion according to a previous motion processing method. 5.The real time weaving motion control device of claim 4, wherein the unitmotion start method is one of: a method of starting the (n+1)th unitmotion at a time point at which the n-th unit motion changes fromacceleration or a constant speed to deceleration; a method of startingthe (n+1)th unit motion at a time point at which the n-th unit motionchanges from acceleration to a constant speed or deceleration; a methodof starting the (n+1)th unit motion at a time point of a predeterminedtime before the n-th unit motion stops; and a method of starting the(n+1)th unit motion at a time point at which an overlapping motionbetween the n-th unit motion and an (n−1)th previous unit motion isterminated.
 6. The real time weaving motion control device of claim 4,wherein the previous motion processing method is one of: a method ofdecelerating the n-th unit motion and starting the (n+1)th unit motion;and a method of maintaining the n-th unit motion and starting the(n+1)th unit motion.
 7. The real time weaving motion control device ofclaim 2, wherein the weaving motion processor comprises: a weaving liststorage unit that stores a weaving list that is determined beforestarting the motion; a real time weaving generator that generatesweaving in real time when a reason for a situation change of the workingspace or a motion path change while working occurs; a weaving cue thatstores weaving that is generated in the real time weaving generator in aunit weaving unit; a weaving selector that selects unit weaving that isincluded in the weaving list or unit weaving of the weaving cueaccording to the weaving motion method selection information; and aworking space weaving motion generator that receives an input of weavingstart/end information and weaving sampling time and weaving referencevariable information for distinguishing unit weaving that is selected bythe weaving selector and that determines a relative weaving amountwithin the weaving sampling time using the selected unit weaving andweaving reference variable information, wherein the weaving referencevariable information comprises a weaving reference variable for settinga weaving change point in which next unit weaving is performed whileperforming present unit weaving.
 8. The real time weaving motion controldevice of claim 7, wherein the working space weaving motion generatordetermines the weaving reference variable based on a time, a tracelength, or a trace rotation amount of the continuous motion.
 9. The realtime weaving motion control device of claim 8, wherein the working spaceweaving motion generator determines the weaving reference variable,determines a first variable using a weaving cycle in which the weavingfunction repeats and the determined weaving reference variable, andgenerates the weaving function as a function of the first variable. 10.The real time weaving motion control device of claim 9, wherein theworking space weaving motion generator generates the weaving referencevariable and the first variable, when the weaving reference variabledoes not arrive at the weaving change point.
 11. The real time weavingmotion control device of claim 7, wherein the working space motionsynthesizing unit, the working space continuous motion generator, theworking space weaving motion generator, and the compensation postureprocessor are synchronized with the weaving sampling time to operate.12. The real time weaving motion control device of claim 11, furthercomprising a joint space converter that receives an input of a positionand a rotation amount of a robot from the working space motionsynthesizing unit and that generates operation of a joint of the robotso as to realize the weaving motion, wherein the joint space converteris synchronized with the weaving sampling cycle to operate.
 13. A methodof controlling a real time weaving motion for controlling operation of arobot in a working space, the method comprising: generating a unitmotion in real time according to whether a real time change reasoncomprising a reason for a situation change of the working space and amotion path change while working occurs and selecting one of a unitmotion that is determined before starting a motion of the robot and aunit motion that is generated in real time; generating unit weaving inreal time according to whether a real time change reason occurs andselecting one of unit weaving that is determined before starting amotion of the robot and unit weaving that is generated in real time;generating at least one of a compensation displacement and acompensation rotation amount that are determined according to asituation change of the working space; and calculating a position and arotation amount of the robot in the working space according to at leastone of the unit motion, the unit weaving, the compensation displacement,and the compensation rotation amount.
 14. The method of claim 13,further comprising determining a relative weaving amount according tothe selected unit weaving, wherein the determining of a relative weavingamount comprises determining a relative weaving amount within a weavingsampling time using the selected unit weaving and weaving referencevariable information, and wherein the weaving reference variableinformation comprises a weaving reference variable for setting a weavingchange point in which next unit weaving is performed while performingpresent unit weaving.
 15. The method of claim 14, wherein thedetermining of a relative weaving amount further comprises: determiningthe weaving reference variable based on a time, a trace length, or atrace rotation amount of the continuous motion; and determining a firstvariable using a weaving cycle that repeats the weaving function and thedetermined weaving reference variable and generating the weavingfunction as a function of the first variable.